# 频繁的使用 需要其他的功能结合使用
# def func():
#     print("定义一个普通函数")
#
#
# def high_level(func):
#     print("定义一个高阶函数") # 此函数的功能
#     # 在函数内部，通过传入的函数参数调用
#     func()  # 调用我传入的函数名的函数
#
#
# high_level(func)
"""
有什么用了！！ 
"""

# def func():
#     print("定义一个普通函数")
#
#
# def high_level(func):
#     print("定义一个高阶函数")
#     return func  # high_level
#     #  return func() 这个是直接返回函数调用，递归函数就是如此
#
#
# res = high_level(func)
# # 高阶函数返回函数之后在调用func函数
# res()

"""递归了解
条件出口的设置 
"""


# def aaa():
#     aaa()
# """超过最大递归深度 RecursionError: maximum recursion depth exceeded """
# aaa()

def func1():
    print("这是外部函数")
    def func2():
        print("这是内部函数")
    return func2  # 返回到函数的调用处
""" func2 = func1()    func2()"""
# func1()()  ##执行func1()会返回func2然后再func2()
m = func1()  # m = func2
print(m)  # 函数
m() # func2()
